package com.project.controller;

import com.project.entity.qo.TableNumberQo;
import com.project.entity.vo.TableNumberVo;
import com.project.result.ResponseResult;
import com.project.result.ResultCode;
import com.project.service.TableNumberService;
import org.springframework.web.bind.annotation.*;

import javax.annotation.Resource;
import java.util.List;

/**
 * @author chen
 * @date 2022/3/28
 */
@RestController
@RequestMapping("/table/number")
public class TableNumberController {

    @Resource
    TableNumberService tableNumberService;

    /**
     * 添加桌号信息
     * @param tableNumberQo 要添加 的参数对象
     * @return 返回状态
     */
    @PutMapping("/insert")
    public ResponseResult<ResultCode> insertTableNumber(@RequestBody TableNumberQo tableNumberQo){
        return tableNumberService.addTableNumber(tableNumberQo);
    }

    /**
     * 根据桌号修改信息
     * @param tableNumberQo  要修改的桌号
     * @return  返回状态值
     */
    @PostMapping("/update/table/number")
    public ResponseResult<ResultCode> updateTableNumberById(@RequestBody TableNumberQo tableNumberQo){
        return tableNumberService.updateTableNumber(tableNumberQo);
    }

    /**
     * 修改桌位使用状态
     * @param tableNum 要修改的桌号
     * @param status 要修改的桌位使用状态值
     * @return 返回状态值
     */
    @PostMapping("/update/table/status")
    public ResponseResult<ResultCode> updateTableStatus(Integer tableNum, Integer status){
        return tableNumberService.updateTableStatus(tableNum,status);
    }

    /**
     * 获取所有桌位信息
     * @return 返回所有桌位信息
     */
    @GetMapping("select")
    public ResponseResult<List<TableNumberVo>> selectTableNumber(){
        return tableNumberService.getTableNumber();
    }

    /**
     *  查询单个桌位信息
     * @param tableNum 要查询的桌位号
     * @return 返回查询的桌位信息
     */
    @GetMapping("/select/one")
    public ResponseResult<TableNumberVo> selectTableNumberOne(Integer tableNum){
        return tableNumberService.getTableNumberById(tableNum);
    }

    /**
     * 查询空座位桌号
     * @return 返回所有空桌位信息
     */
    @GetMapping("/get/table/number/by/status")
    public ResponseResult<List<TableNumberVo>> getTableNumberByStatus(){
        return tableNumberService.getTableNumberByStatus();
    }

    /**
     * 分页查询
     * @param current 当前页
     * @return 当前页数据
     */
    @GetMapping("/select/table/number/page")
    public ResponseResult<List<TableNumberVo>> selectTableNumberPage(Integer current){
        return  tableNumberService.selectTableNumberPage(current);
    }
}
